
package com.jf.cloud.delivery.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jf.cloud.common.serializer.ImgJsonSerializer;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;

/**
 * 自提点
 */
public class StationDetailVO implements Serializable{
    /**
     * 自提点id
     */
    @Schema(description  =  "自提点id")
    private Long stationId;
    /**
     * 联系人
     */
    @Schema(description  =  "联系人")
    private String userName;
    /**
     * 自提点名称
     */
    @Schema(description  =  "自提点名称")
    private String stationName;
    /**
     * 自提点图片
     */
    @Schema(description  =  "自提点图片")
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String imgUrl;

    /**
     * 是否常用客服中心 1是 0不是
     */
    @Schema(description  =  "是否常用客服中心 1是 0不是")
    private Integer defaultStation = 0;
    /**
     * 省
     */
    @Schema(description  =  "省")
    private String province;
    /**
     * 省id

     */
    @Schema(description  =  "省id")
    private Long provinceId;
    /**
     * 市
     */
    @Schema(description  =  "市")
    private String city;
    /**
     * 市id
     */
    @Schema(description  =  "市id")
    private Long cityId;
    /**
     * 区
     */
    @Schema(description  =  "区")
    private String area;
    /**
     * 区id
     */
    @Schema(description  =  "区id")
    private Long areaId;
    /**
     * 详细地址
     */
    @Schema(description  =  "详细地址")
    private String addr;
    /**
     * 电话区号
     */
    @Schema(description  =  "电话区号")
    private String phonePrefix;
    /**
     * 电话
     */
    @Schema(description  =  "电话")
    private String mobile;
    /**
     * 店铺所在纬度
     */
    @Schema(description  =  "店铺所在纬度")
    private Double lat;
    /**
     * 店铺所在经度
     */
    @Schema(description  =  "店铺所在经度")
    private Double lng;
    /**
     * 距离
     */
    @Schema(description  =  "距离")
    private Double distance;
    /**
     * 是否默认自提点 1 默认  0 非默认
     */
    @Schema(description  =  "是否默认自提点 1 默认  0 非默认")
    private String commonAddr;

    /**
     * 用户自提点id
     */
    @Schema(description  =  "用户自提点id")
    private Long id;

    /**
     * 时间日期数据
     */
    private String timeInfo;

    /**
     * 营业时间
     */
    @Schema(description  =  "营业时间")
    private String business;
    /**
     * 时间日期数据
     */
    private List<TimeVO> timeVOs;


    public static class TimeInfoModeVO {
        /**
         * 营业时间
         */
        private Long[] shopTime;
        /**
         * 时段间隔 1:天 2:上下午晚上（12:00和18:00为分界点）  3:小时  4:半小时
         */
        private Integer interval;
        /**
         * 自提开始时间
         */
        private String stationStartTime;
        /**
         * 自提结束时间
         */
        private String stationEndTime;

        public Long[] getShopTime() {
            return shopTime;
        }

        public void setShopTime(Long[] shopTime) {
            this.shopTime = shopTime;
        }

        public Integer getInterval() {
            return interval;
        }

        public void setInterval(Integer interval) {
            this.interval = interval;
        }

        public String getStationStartTime() {
            return stationStartTime;
        }

        public void setStationStartTime(String stationStartTime) {
            this.stationStartTime = stationStartTime;
        }

        public String getStationEndTime() {
            return stationEndTime;
        }

        public void setStationEndTime(String stationEndTime) {
            this.stationEndTime = stationEndTime;
        }
        @Override
        public String toString() {
            return "TimeInfoModeVO{" +
                    "shopTime=" + Arrays.toString(shopTime) +
                    ", interval=" + interval +
                    ", stationStartTime='" + stationStartTime + '\'' +
                    ", stationEndTime='" + stationEndTime + '\'' +
                    '}';
        }
    }

    public Long getStationId() {
        return stationId;
    }

    public void setStationId(Long stationId) {
        this.stationId = stationId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public String getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }

    public Integer getDefaultStation() {
        return defaultStation;
    }

    public void setDefaultStation(Integer defaultStation) {
        this.defaultStation = defaultStation;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public Long getCityId() {
        return cityId;
    }

    public void setCityId(Long cityId) {
        this.cityId = cityId;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public String getPhonePrefix() {
        return phonePrefix;
    }

    public void setPhonePrefix(String phonePrefix) {
        this.phonePrefix = phonePrefix;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Double getLat() {
        return lat;
    }

    public void setLat(Double lat) {
        this.lat = lat;
    }

    public Double getLng() {
        return lng;
    }

    public void setLng(Double lng) {
        this.lng = lng;
    }

    public Double getDistance() {
        return distance;
    }

    public void setDistance(Double distance) {
        this.distance = distance;
    }

    public String getCommonAddr() {
        return commonAddr;
    }

    public void setCommonAddr(String commonAddr) {
        this.commonAddr = commonAddr;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTimeInfo() {
        return timeInfo;
    }

    public void setTimeInfo(String timeInfo) {
        this.timeInfo = timeInfo;
    }

    public String getBusiness() {
        return business;
    }

    public void setBusiness(String business) {
        this.business = business;
    }

    public List<TimeVO> getTimeVOs() {
        return timeVOs;
    }

    public void setTimeVOs(List<TimeVO> timeVOs) {
        this.timeVOs = timeVOs;
    }

    @Override
    public String toString() {
        return "StationDetailVO{" +
                "stationId=" + stationId +
                ", userName='" + userName + '\'' +
                ", stationName='" + stationName + '\'' +
                ", imgUrl='" + imgUrl + '\'' +
                ", defaultStation=" + defaultStation +
                ", province='" + province + '\'' +
                ", provinceId=" + provinceId +
                ", city='" + city + '\'' +
                ", cityId=" + cityId +
                ", area='" + area + '\'' +
                ", areaId=" + areaId +
                ", addr='" + addr + '\'' +
                ", phonePrefix='" + phonePrefix + '\'' +
                ", mobile='" + mobile + '\'' +
                ", lat=" + lat +
                ", lng=" + lng +
                ", distance=" + distance +
                ", commonAddr='" + commonAddr + '\'' +
                ", id=" + id +
                ", timeInfo='" + timeInfo + '\'' +
                ", business='" + business + '\'' +
                ", timeVOs=" + timeVOs +
                '}';
    }
}
